home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / M2Crypto / DH.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2008-10-13  |  3KB  |  91 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. from util import genparam_callback
  5. import BIO
  6. import Err
  7. import m2
  8.  
  9. class DHError(Exception):
  10.     pass
  11.  
  12. m2.dh_init(DHError)
  13.  
  14. class DH:
  15.     m2_dh_free = m2.dh_free
  16.     
  17.     def __init__(self, dh, _pyfree = 0):
  18.         self.dh = dh
  19.         self._pyfree = _pyfree
  20.  
  21.     
  22.     def __del__(self):
  23.         if getattr(self, '_pyfree', 0):
  24.             self.m2_dh_free(self.dh)
  25.         
  26.  
  27.     
  28.     def __len__(self):
  29.         return m2.dh_size(self.dh)
  30.  
  31.     
  32.     def __getattr__(self, name):
  33.         if name in ('p', 'g', 'pub', 'priv'):
  34.             method = getattr(m2, 'dh_get_%s' % (name,))
  35.             return method(self.dh)
  36.         else:
  37.             raise AttributeError
  38.  
  39.     
  40.     def __setattr__(self, name, value):
  41.         if name in ('p', 'g'):
  42.             raise DHError, 'set (p, g) via set_params()'
  43.         elif name in ('pub', 'priv'):
  44.             raise DHError, 'generate (pub, priv) via gen_key()'
  45.         else:
  46.             self.__dict__[name] = value
  47.  
  48.     
  49.     def _ptr(self):
  50.         return self.dh
  51.  
  52.     
  53.     def check_params(self):
  54.         return m2.dh_check(self.dh)
  55.  
  56.     
  57.     def gen_key(self):
  58.         m2.dh_generate_key(self.dh)
  59.  
  60.     
  61.     def compute_key(self, pubkey):
  62.         return m2.dh_compute_key(self.dh, pubkey)
  63.  
  64.     
  65.     def print_params(self, bio):
  66.         return m2.dhparams_print(bio._ptr(), self.dh)
  67.  
  68.  
  69.  
  70. def gen_params(plen, g, callback = genparam_callback):
  71.     return DH(m2.dh_generate_parameters(plen, g, callback), 1)
  72.  
  73.  
  74. def load_params(file):
  75.     bio = BIO.openfile(file)
  76.     return load_params_bio(bio)
  77.  
  78.  
  79. def load_params_bio(bio):
  80.     return DH(m2.dh_read_parameters(bio._ptr()), 1)
  81.  
  82.  
  83. def set_params(p, g):
  84.     dh = m2.dh_new()
  85.     m2.dh_set_p(dh, p)
  86.     m2.dh_set_g(dh, g)
  87.     return DH(dh, 1)
  88.  
  89. DH_GENERATOR_2 = m2.DH_GENERATOR_2
  90. DH_GENERATOR_5 = m2.DH_GENERATOR_5
  91.